const path = require('path')
const Koa = require('koa')
const Sequelize=require('sequelize');
const perDatebase = require('./dbs').perDatebase()
const newDatebase = require('./dbs').newDatebase()
const Promsie = require('bluebird')

const binlog = new Koa()

// const oldtbplaylog = perDatebase.define('tbplaylog',{
// id: {
//     type: Sequelize.CHAR(10),
//     primaryKey: true
// },
// did: Sequelize.INTEGER (10),
// power: Sequelize.STRING(11),
// temp: Sequelize.DOUBLE(10),
// humidity: Sequelize.DOUBLE(10),
// lightness: Sequelize.INTEGER(11),
// smoke: Sequelize.INTEGER(11),
// per_id: Sequelize.INTEGER(11),
// per_type: Sequelize.INTEGER(11),
// data: Sequelize.INTEGER(11),
// time: Sequelize.INTEGER(11),
// dev_num: Sequelize.CHAR(255),
// serialport: Sequelize.CHAR(255)

// },{
// 'timestamps': false,
// 'createdAt': false,
// })


const oldtbDeviceRec = perDatebase.define('tbDeviceRec',{
id: {
    type: Sequelize.INTEGER,
    primaryKey: true
},
devno:Sequelize.STRING(11),
content:Sequelize.TEXT,
type:Sequelize.INTEGER(11),
time:Sequelize.INTEGER(11),
note:Sequelize.STRING(512)

},{
'freezeTableName': true,
'tableName': 'tbDeviceRec',
'timestamps': false,
'createdAt': false,
})



// const newtbplaylog = perDatebase.define('tbplaylog',{
// id: {
//     type: Sequelize.CHAR(10),
//     primaryKey: true
// },
// did: Sequelize.INTEGER (10),
// power: Sequelize.STRING(11),
// temp: Sequelize.DOUBLE(10),
// humidity: Sequelize.DOUBLE(10),
// lightness: Sequelize.INTEGER(11),
// smoke: Sequelize.INTEGER(11),
// per_id: Sequelize.INTEGER(11),
// per_type: Sequelize.INTEGER(11),
// data: Sequelize.INTEGER(11),
// time: Sequelize.INTEGER(11),
// dev_num: Sequelize.CHAR(255),
// serialport: Sequelize.CHAR(255)

// },{
// 'timestamps': false,
// 'createdAt': false,
// }


const newtbDeviceRec = perDatebase.define('tbDeviceRec',{
id: {
    type: Sequelize.STRING(10),
    primaryKey: true
},
devno:Sequelize.STRING(11),
content:Sequelize.TEXT,
type:Sequelize.INTEGER(11),
time:Sequelize.INTEGER(11),
note:Sequelize.STRING(512)

},{
'freezeTableName': true,
'tableName': 'tbDeviceRec',
'timestamps': false,
'createdAt': false,
})

// let excuteDate =function(){oldtbDeviceRec.find({
// 	attributes:['time'],
// 	where:{
// 		attributes:['time'],
// 		time:{
// 			$gt: Math.round(new Date().getTime()/1000) - 24 * 60 * 60 * 7  
// 		}
// 	}
// })}


oldtbDeviceRec.find({
	attributes:['time'],
	where:{
		time:{
			$gt: Math.round(new Date().getTime()/1000) - 24 * 60 * 60 * 7 //找到七天前的时间点
		}
	}
}).then(function(result){
	return oldtbDeviceRec.findAll({
		where:{
			time:{
				$lt: result.dataValues.time
			}
		},
		limit: 1000,
	})
}).then(function(result){
	var str = JSON.stringify(result);
	var json = JSON.parse(str)
	return newtbDeviceRec.bulkCreate(json)
	
}).then(function(result){
	
})
.catch(function(err){
	console.log(err)
})


// .then(function(result){
// 	oldtbDeviceRec.destroy({
// 		where:{
// 			time:{
// 				$lt : result.dataValues.time
// 			}
// 		}
// 	})
// })



// return oldtbDeviceRec.findAll({
// 	attributes:['time'],
// 	where:{
// 		time:{
// 			$gt: Math.round(new Date().getTime()/1000) - 24 * 60 * 60 * 7
// 		}
// 	}
// })


// Promsie.all([excuteDate]).then(function(result){
// 	var excuteDate = result[0]
// 	return new Promise(resolve, reject){

// 	}
// }).then(function)

// oldtbDeviceRec.findAll({
// 	where:{

// 	}
// })
// .then(function(logs){
// 	console.log(logs)
// })
// .catch(function(err){
// 	console.log(err)
// 	return err
// })

// function eventLoop(){
	
// }

// oldtbDeviceRec.find({
// 	attributes:['time'],
// 	where:{
// 		time:{
// 			$gt: Math.round(new Date().getTime()/1000) - 24 * 60 * 60 * 7
// 		}
// 	}
// }).then(function(result){
// 	console.log(result.dataValues.time)
// }).catch(function(err){
// 	return err
// })


binlog.listen( 8888 )
console.log(`the server is start at port 8888`)
